2023/12/23977字符
Promise串联
let pro1, pro2, pro3;
pro1 = new Promise(res => res())
console.log(pro1); //--> Promise {<resolved>: undefined} 已决
pro2 = pro1
console.log(pro2); //--> Promise {<resolved>: undefined} 已决
pro2 = pro1.then();
console.log(pro2); //--> Promise {<pending>} 未决
pro3 = pro2;
console.log(pro3); //--> Promise {<pending>} 未决
后续的 Promise 一定会等到前面的 Promise 有了后续处理结果后,才会变为已决状态
小试验
const pro1 = new Promise((res, rej) => {
res(1);
})
const pro2 = pro1.then(res => {
return res * 2;
});
pro2.then(res => {
console.log(res + 1) //--> 3
})
const pro1 = new Promise((res, rej) => {
throw 1;
})
const pro2 = pro1.then(res => {
return res * 2;
}, err => {
return err * 3;
});
pro2.then(res => {
console.log(res * 2); //--> 6
}, err => {
console.log(err * 3);
})